package com.gaohe.scp.service;

import java.util.List;
import com.gaohe.scp.domain.CsCar;
import com.gaohe.scp.domain.vo.CarAllInfoDTO;
import com.gaohe.scp.domain.vo.CsCarDto;
import com.gaohe.scp.domain.vo.CsCarVo;
import com.gaohe.scp.domain.vo.CsNoticeVo;
import org.springframework.transaction.annotation.Transactional;

/**
 * 车辆管理Service接口
 *
 * @author liuxiangyu
 * @date 2025-03-28
 */
public interface ICsCarService
{
    /**
     * 查询车辆管理
     *
     * @param carId 车辆管理主键
     * @return 车辆管理
     */
    public CsCar selectCsCarByCarId(Long carId);

    /**
     * 查询车辆管理列表
     *
     * @param csCar 车辆管理
     * @return 车辆管理集合
     */
    public List<CsCar> selectCsCarList(CsCar csCar);

    /**
     * 查询车辆管理列表
     * 管理端
     * @param csCar 车辆管理
     * @return 车辆管理集合
     */
    public List<CsCar> GldSelectCsCarList(CsCar csCar);

    /**
     * 新增车辆管理
     *
     * @param csCar 车辆管理
     * @return 结果
     */
    public int insertCsCar(CsCar csCar);

    /**
     * 修改车辆管理
     *
     * @param csCar 车辆管理
     * @return 结果
     */
    public int updateCsCar(CsCar csCar);

    //    @Override
//    public int updateCsCar(CsCar csCar)
//    {
//        csCar.setUpdateTime(DateUtils.getNowDate());
//        return csCarMapper.updateCsCar(csCar);
//    }

    //    @Override
//    public int updateCsCar(CsCar csCar)
//    {
//        csCar.setUpdateTime(DateUtils.getNowDate());
//        return csCarMapper.updateCsCar(csCar);
//    }

    /**
     * 作者:张文豪
     * 更新多条数据
     * @param dto
     * @return
     */
    @Transactional
    int updateAllCarInfo(CarAllInfoDTO dto);

    /**
     * 批量删除车辆管理
     *
     * @param carIds 需要删除的车辆管理主键集合
     * @return 结果
     */
    public int deleteCsCarByCarIds(Long[] carIds);

    /**
     * 删除车辆管理信息
     *
     * @param carId 车辆管理主键
     * @return 结果
     */
    public int deleteCsCarByCarId(Long carId);
    //往期竞拍和在售车辆
    List<CsCarVo> selectWangqiAndMaiIng(CsCar csCar);
    //我的关注
    List<CsCarVo> selectMyGuanZhu(Long userId);
    //今日竞拍
    List<CsCarVo> todayJingPai(CsCar csCar);
    //搜索车辆
    List<CsCarVo> searchCar(CsCar csCar);
    //全部车辆
    List<CsCarVo> allCar(CsCarDto csCarDto);
    //我的预约
    List<CsCarVo> myReserve(CsCar csCar);


    /**
     * 作者:张文豪
     * @param dto
     * @return
     */
    public int insertAllCarInfo(CarAllInfoDTO dto);

    @Transactional
    int deleteAllCarInfo(Long carId);

    /**
     * 作者:张文豪
     * @param carId
     * @return
     */
    @Transactional
    CarAllInfoDTO selectCarAllInfoDto(Long carId);

    /**
     * 作者:张文豪
     * @param carId
     * @return
     */
    int delAllCarInfo(Long carId);

    public int updateReserverDetail(Long carId);

    public CsCar selectReserverStatus(Long carId);


    List<CsCar> selectCsCarListStatus();
}
